﻿// Pagina para la Administracion de Recorridas
Ext.define('Recorridas', {
    extend: 'ABMBase',
    Title: 'Formulario ABM de Recorridas',
    Model: 'Model.AccesoRecorridas',
    defaultPropertySort: 'descripcion',
    storeJuzgados: CreateForeignStore('storeJuzgados', 'Model.Juzgados'),
    listeners: {
        Creando: function (rcd) {
            // Seteo los valores por defecto de los nuevos registros
            rcd.record.set('aux2', '1');
            rcd.record.set('idCategoria', '5');
            Ext.StoreMgr.get('storeJuzgados').remoteFilter = true;
            Ext.StoreMgr.get('storeJuzgados').clearFilter(true);
            Ext.StoreMgr.get('storeJuzgados').filter({ property: 'idSede', value: 'null' });
        },
        Actualizando: function (rcd) {
            // Seteo los valores por defecto cuando edito un registro
            rcd.record.set('aux1', '1');
        },
        Actualizado: function (rcd) {
            // Si se guardaron con exito los datos asigno los Juzgados a la recorrida
            activeInstance.EjecutarEnServidor('GuardarJuzgados', {
                id: rcd.record.data.id,
                juzgados: Ext.getCmp('bsJuzgados').getValue().join()
            });
        },
        Editando: function (rcd) {
            // Cuando edito un registro seteo los juzgados seleccionados previamente
            var res = activeInstance.EjecutarEnServidor('ObtenerJuzgados', {
                id: rcd.record.data.id
            });
            Ext.StoreMgr.get('storeJuzgados').remoteFilter = true;
            Ext.StoreMgr.get('storeJuzgados').clearFilter(true);
            Ext.StoreMgr.get('storeJuzgados').filter([{ property: 'idSede', value: 'null' }, { property: 'idSede', value: rcd.record.data.id}]);
            Ext.getCmp('bsJuzgados').setValue(eval('[' + res + ']'));
        }
    },
    WindowPanel: [{
        xtype: 'fieldset',
        title: 'General',
        collapsible: true,
        items: [{
            xtype: 'textfield',
            fieldLabel: 'Identificador',
            name: 'id',
            readOnly: true,
            anchor: '95%'
        }, {
            xtype: 'textfield',
            fieldLabel: 'Descripcion',
            name: 'descripcion',
            maxLength: 50,
            enforceMaxLength: true,
            allowBlank: false,
            anchor: '95%'
        }, {
            xtype: 'combobox',
            fieldLabel: 'Día Recorrida',
            queryMode: 'local',
            displayField: 'diaNombre',
            valueField: 'dia',
            editable: false,
            store: Ext.create('Ext.data.Store', {
                fields: ['dia', 'diaNombre'],
                data: [
                            { "dia": '1', "diaNombre": 'Lunes' },
                            { "dia": '2', "diaNombre": 'Martes' },
                            { "dia": '3', "diaNombre": 'Miercoles' },
                            { "dia": '4', "diaNombre": 'Jueves' },
                            { "dia": '5', "diaNombre": 'Viernes' }
                        ]
            }),
            allowBlank: false,
            name: 'aux2'
        }]
    }, {
        xtype: 'fieldset',
        title: 'Juzgados',
        collapsible: true,
        items: [
             {
                 id: 'bsJuzgados',
                 xtype: 'boxselect',
                 fieldLabel: 'Juzgados',
                 queryMode: 'local',
                 descField: 'Juzgado',
                 displayField: 'Juzgado',
                 valueField: 'id',
                 editable: true,
                 store: Ext.StoreMgr.get('storeJuzgados'),
                 allowBlank: true,
                 anchor: '97%',
                 typeAhead: true
             }
    ]
    }],
    Columns: [
            { text: 'Id', dataIndex: 'id', filter: true },
            { text: 'Descripcion', dataIndex: 'descripcion', filter: true }
        ]
});
